[search] fibonacci search

fibonacci search 跟 binary search 一樣都是使用二分法來進行切割範圍和搜尋

不同的是 fibonacci 是用 fibonacci number 來切割

也就是說我們會先建立一個 fibonacci tree

然後再依照此 tree 來做search

示意圖 – 來源

fibonacci tree 的 root 是由資料個數 n 決定的

先利用 Fib(k+1) >= n + 1

來決定 k

再以Fib(k) 當作root 的值

而其左子樹為 (k – 1) 階Fibonacci tree

右子樹為 (k-2) 階 Fibonacci tree

依此類推可以建立完整的 Fibonacci tree

更多詳細資料可參考 – 程式扎記